/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.grnt.buddy;

import java.util.TreeSet;
import org.grnt.common.Triple;

/**
 *
 * This class is a Triple decorator, it decorates to holding some information about
 * user with three fields UserBean object, a set of ids of its buddies, a set of
 * buddies ids reference to it.
 * @author sayid
 */
public class UserDecorator extends Triple<UserBean, TreeSet<Long>, TreeSet<Long>>{
	/**
	 * Constructor with three parameter user, sub-buddies, shadows(They are reference
	 * to the user.)
	 * @param user UserBean object, and it describes the correct user.
	 * @param subBuddies Buddies ids are the correct user's sub-buddies.
	 * @param shadows Buddies ids reference to the correct user.
	 */
	public UserDecorator(UserBean user, TreeSet<Long> subBuddies, TreeSet<Long> shadows) {
		super(user, subBuddies, shadows);
	}
	/**
	 *
	 * @return UserBean object.
	 */
	public final UserBean getUserBean() {
		return value1;
	}
	/**
	 *
	 * @return Buddies ids are the correct user's sub-buddies.
	 */
	public final TreeSet<Long> getSubBuddies() {
		return value2;
	}
	/**
	 *
	 * @return Buddies ids reference to the correct user.
	 */
	public final TreeSet<Long> getShadows() {
		return value3;
	}
}
